﻿/***********************************************************/
/*Arcans Project                                           */
/*Jeu sous forme d'application web entièrement conçu       */
/*et réalisé par Killian Le Maitre                         */
/*la v0.2, version actuelle, est parue le 15 Novembre 2010 */ 
/*Jeu sous licence GNU GPL v3 (voir NOTICE et COPYING)     */
/***********************************************************/

//classe javascript de renouvellement du mot de passe
var obj_fpwd = {
	//méthodes
	openFpwd: function () {
		//fermeture de l'encart
		for (var i = 0; i < 9; i++) {
			var temp = 40 - i*50;
			window.setTimeout("document.getElementById('encart').style.top = '" + temp + "px';", 50*i);
		}
		//ouverture de l'encart
		window.setTimeout("document.getElementById('encart').removeChild(document.getElementById('encart').firstChild);", 499);
		window.setTimeout("obj_fpwd.openFpwdC();", 500);
	},
	openFpwdC: function () {
		var encart = document.getElementById("encart");
		encart.style.display = "block";
		encart.style.top = "-360px";
		encart.style.left = "550px";
		encart.style.width = "400px";
		for (var i = 0;i < 9;i++) {
			var temp = -360 + i*50;
			window.setTimeout("document.getElementById('encart').style.top = '" + temp + "px';", 50*i);
		}
		//remplissage de l'encart
		var main_div = document.createElement("div");
		//titre
		var crea_child1 = document.createElement("h3");
		crea_child1.appendChild(document.createTextNode("Oubli du mot de passe :"));
		main_div.appendChild(crea_child1);
		//texte 1
		crea_child1 = document.createElement("p");
		crea_child1.appendChild(document.createTextNode("Veuillez rentrer votre adresse électronique pour confirmer. Vérifiez que le courrier envoyé n'est pas parmi les spam."));
		main_div.appendChild(crea_child1);
		//texte 2
		crea_child1 = document.createElement("p");
		crea_child1.appendChild(document.createTextNode("Un mot de passe aléatoire vous sera fourni par mail à l'issue de la validation. Vous pourrez le modifier dans vos paramètres de compte."));
		main_div.appendChild(crea_child1);
		//zone d'alerte
		crea_child1 = document.createElement("p");
		crea_child1.setAttribute("id", "result");
		main_div.appendChild(crea_child1);
		//table
			//première ligne : pseudonyme
		crea_child1 = document.createElement("label");
		crea_child1.setAttribute("for", "pseudo");
		crea_child1.appendChild(document.createTextNode("Pseudonyme : "));
		var crea_child2 = document.createElement("td");
		crea_child2.appendChild(crea_child1);
		crea_child1 = document.createElement("input");
		crea_child1.setAttribute("maxlength", "15");
		crea_child1.setAttribute("id", "pseudo");
		var crea_child3 = document.createElement("td");
		crea_child3.appendChild(crea_child1);
		var crea_child4 = document.createElement("tr");
		crea_child4.appendChild(crea_child2);
		crea_child4.appendChild(crea_child3);
			//quatrième ligne : email
		crea_child1 = document.createElement("label");
		crea_child1.setAttribute("for", "mail");
		crea_child1.appendChild(document.createTextNode("Adresse électronique : "));
		crea_child2 = document.createElement("td");
		crea_child2.appendChild(crea_child1);
		crea_child1 = document.createElement("input");
		crea_child1.setAttribute("id", "mail");
		crea_child3 = document.createElement("td");
		crea_child3.appendChild(crea_child1);
		crea_child1 = document.createElement("tr");
		crea_child1.appendChild(crea_child2);
		crea_child1.appendChild(crea_child3);
			//regroupement
		crea_child2 = document.createElement("table");
		crea_child2.appendChild(crea_child4);
		crea_child2.appendChild(crea_child1);
		main_div.appendChild(crea_child2);
		//bouton de validation
		var button = document.createElement("input");
		button.setAttribute("type", "button");
		button.setAttribute("class", "button");
		button.setAttribute("value", "valider");
		button.setAttribute("onclick", "javascript:obj_fpwd.fpwdValid();");
		main_div.appendChild(button);
		//bouton d'annulation
		button = document.createElement("input");
		button.setAttribute("type", "button");
		button.setAttribute("class", "button");
		button.setAttribute("value", "Annuler");
		button.setAttribute("onclick", "javascript:obj_fpwd.canFpwd();");
		main_div.appendChild(button);
		encart.appendChild(main_div);
	},
	canFpwd: function () {
		//fermeture de l'encart
		for (var i = 0; i < 9; i++) {
			var temp = 40 - i*60;
			window.setTimeout("document.getElementById('encart').style.top = '" + temp + "px';", 50*i);
		}
		//ouverture de l'encart
		window.setTimeout("document.getElementById('encart').removeChild(document.getElementById('encart').firstChild);", 499);
		window.setTimeout("obj_connex.openConC();", 500);
	},
	fpwdValid: function () {
		var result = document.getElementById("result");
		if (result.hasChildNodes()) result.removeChild(result.firstChild);
		var regpseudo = new RegExp(/^[\w]+[\w\-\.]{2,}$/);
		var regemail = new RegExp(/^[a-zA-Z0-9]+([_|\.|-]{1}[a-zA-Z0-9]+)*@[a-zA-Z0-9]+([_|\.|-]­{1}[a-zA-Z0-9]+)*[\.]{1}[a-z]{2,6}$/);
		var pseudo = document.getElementById("pseudo").value;
		var email = document.getElementById("mail").value;
		if (regpseudo.test(pseudo)) {
			if (regemail.test(email)) {
				//requête ajax pour la validation de la connexion
				try { var xhr = new ActiveXObject('Msxml2.XMLHTTP'); }
				catch (e) {
					try { var xhr = new ActiveXObject('Microsoft.XMLHTTP'); }
					catch (e2) {
						try { var xhr = new XMLHttpRequest(); }
						catch (e3) { var xhr = false; }
					}
				}
				//xhr fonction
				xhr.onreadystatechange = function() {
					if(xhr.readyState  == 4) {
						if(xhr.status  == 200) {
							var reponse = xhr.responseText;
							if (reponse == "1") {
								//fermeture de l'encart
								var encart = document.getElementById("encart");
								encart.removeChild(encart.firstChild);
								window.setTimeout('encart.appendChild(document.createElement("div"));', 260);
								window.setTimeout('encart.firstChild.appendChild(document.createElement("h3"));', 270);
								window.setTimeout('encart.firstChild.firstChild.appendChild(document.createTextNode("Oubli du mot de passe :"));', 300);
								window.setTimeout('var para = document.createElement("p");', 310);
								window.setTimeout('para.setAttribute("class", "valid");', 320);
								window.setTimeout('para.appendChild(document.createTextNode("Votre mot de passe a bien été modifié. Un mail de rappel va vous être envoyé, contenant le nouveau mot de passe, généré aléatoirement."));', 360);
								window.setTimeout('encart.firstChild.appendChild(para);', 380);
								window.setTimeout("obj_fpwd.fpwdClose();", 2300);
							}
							else {
								var crea_child = document.createElement("span");
								crea_child.setAttribute("class", "erreur");
								crea_child.appendChild(document.createTextNode("Vos informations n'ont pu être validé, êtes-vous bien inscrit ? Si vous n'avez pas confirmé votre inscription via le courrier électronique, vous ne pouvez pas obtenir un nouveau mot de passe."));
								result.appendChild(crea_child);
							}
						}
					}
				}
				//lancement de l'ajax
				xhr.open( "POST", "?p=afpwd",  true);
				xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
				var donnees = 'info1=' + pseudo + '&info2=' + email;
				xhr.send(donnees);
			}
			else {
				var crea_child = document.createElement("span");
				crea_child.setAttribute("class", "erreur");
				crea_child.appendChild(document.createTextNode("L'adresse électronique n'est pas valide !"));
				result.appendChild(crea_child);
			}
		}
		else {
			var crea_child = document.createElement("span");
			crea_child.setAttribute("class", "erreur");
			crea_child.appendChild(document.createTextNode("Le pseudonyme est invalide !"));
			result.appendChild(crea_child);
		}
	},
	fpwdClose: function () {
		for (var i = 0; i < 9; i++) {
			window.setTimeout("document.getElementById('voile').style.opacity = 0." + (8 - i), 50*i);
			var temp = 40 - i*55;
			window.setTimeout("document.getElementById('encart').style.top = '" + temp + "px';", 50*i);
		}
		window.setTimeout("document.getElementById('encart').removeChild(document.getElementById('encart').firstChild);", 399);
		window.setTimeout("document.getElementById('voile').style.display = 'none'", 400);
		window.setTimeout("document.getElementById('encart').style.display = 'none'", 400);
		document.body.style.overflow = "auto";
	}
}